package org.NooLab.texx.plugg.algo.intf;

import java.util.ArrayList;

import org.NooLab.structures.texx.plugg.algo.intf.AlgorithmIntf;
import org.NooLab.structures.texx.plugg.algo.intf.AlgorithmParameters;




abstract public class AlgoMeasurementAbstract implements AlgoMeasurementIntf {
 
	private static final long serialVersionUID = 4931940602875815724L;
	
	protected int typeInfo = AlgorithmIntf._ALGOTYPE_PASSIVE ;
	
	
	// ....................................................

	ArrayList<ArrayList<Double>> valueTable = new ArrayList<ArrayList<Double>>();
	
	protected ArrayList<Double> values = new ArrayList<Double>() ;
	ArrayList<String> stringvalues = new ArrayList<String>() ;
	
	ArrayList<Double> outvalues = new ArrayList<Double>() ;
	ArrayList<String> outstringvalues = new ArrayList<String>() ;
	
	boolean isStrData ;
	
	protected boolean hasParameters = false; // will be true in case of algos like NumValEnum
	
	protected AlgorithmParameters parameters ; 
	
	
	// ------------------------------------------------------------------------
	public AlgoMeasurementAbstract(){
		parameters = new AlgorithmParameters(this) ;
	}
	// ------------------------------------------------------------------------

	@Override
	public int getType() {
		return typeInfo;
	}
	
	  
	
	abstract public int calculate() ;
	
	
	@Override
	public String[] showAvailableParameters() {
		
		return null;
	}
	
	
	@Override
	public AlgorithmParameters getParameters() {
		
		return parameters;
	}
	
	
	@Override
	public void setParameters( AlgorithmParameters algorithmParams) {
	}
	
	@Override
	public void setParameters(ArrayList<Object> params) throws Exception {
	}

	
	
}
